All samples

# Function Vulcano plot 
volcano_plot <- function(res, title = NULL, subtitle = NULL, annotate_by = NULL, type ='ALS'){
  res <- 
    mutate(res,
           sig = case_when(
      adj.P.Val >= 0.05 ~ "non_sig",
      adj.P.Val < 0.05 & abs(logFC) < 1 ~ "sig",
      adj.P.Val < 0.05 & abs(logFC) >= 1 ~ "sig - strong"
    )) %>%
    mutate(direction = ifelse(logFC > 0, "up", "down")) %>%
    mutate(logFC = case_when(
      logFC > 5 ~ Inf,
    logFC < -5 ~ -Inf,
    TRUE ~ logFC
    )) %>%
    mutate(class = paste(sig, direction))
  if( type == "ALS"){
    xpos <- 0.5
    ymax <- 50
    xlim <- c(-3,3)
  }else{
    xpos <- 0.025
    ymax <- 8.5
    xlim <- c(-0.042, 0.042)
  }
  de_tally <- group_by(res, sig, direction, class) %>% tally() %>%
    filter(sig != "non_sig") %>%
    mutate( position = ifelse(sig == "sig", xpos, 2) ) %>%
    mutate(position = ifelse( direction == "down", -1 * position, position)) %>%
    mutate(n = formatC(n, format="f", big.mark=",", digits=0))
  plot <- res %>%
    mutate( P.Value = ifelse( P.Value < 1e-90, Inf, P.Value)) %>% #threshold at 1e16
    ggplot(aes(x = logFC, y = -log10(P.Value))) + 
    #geom_point(aes(colour = class ), size = 0.5) +
    rasterise(geom_point(aes(colour = class ), size = 0.5), dpi = 300) +
    scale_colour_manual(values = c("non_sig up" = "gray", 
                                   "non_sig down" = "gray",
                                   "sig up" = "#EB7F56", 
                                   "sig - strong up" = "#B61927",
                                   "sig down" = "#4F8FC4",
                                   "sig - strong down" = "dodgerblue4"
                                   )) +
    theme_bw() +
    labs(y = expression(-log[10]~P~value), x = expression(log[2]~"(fold change)"), title = title, subtitle = subtitle) +
    guides(colour = FALSE) +
    scale_y_continuous(expand = c(0,0), limits = c(0,ymax)) +
    theme_bw() +
    theme(
      plot.title = element_text(hjust = 0.5),
      plot.subtitle = element_text(hjust = 0.5),
      panel.border = element_blank(),
      axis.ticks = element_line(colour = "black")
    ) +
    geom_text(fontface = "bold", data = de_tally, aes(x = position, y = ymax - 0.5, label = n, colour = class), size = 2.5 ) +
    scale_x_continuous(limits = xlim)
  if(!is.null(annotate_by)){
    plot <- plot + 
      ggrepel::geom_text_repel(
        fontface = "italic",
        data = filter(res, symbol %in% annotate_by), 
        aes(x = logFC, y = -log10(P.Value), label = symbol), 
        min.segment.length = unit(0, "lines"),
        size = 2.5) +
      geom_point(
        data = filter(res, symbol %in% annotate_by), size = 0.8, colour = "black"
      ) +
      geom_point(aes(colour = class ),
        data = filter(res, symbol %in% annotate_by), size = 0.6
      )
  }
  return(plot)
}

Data load

Patir <- read.csv("~/Documents/MiGASti/Databases/Patir.txt", sep="")
names(Patir)[1] <- "symbol"
LPS_S = "~/Documents/MiGASti/Databases/LPS_DTU.xlsx"
LPS_S = read_excel(LPS_S, col_names = TRUE) 
LPS_S = as.data.frame(LPS_S)

IFNy_S = "~/Documents/MiGASti/Databases/DTU_IFNy.xlsx"
IFNy_S = read_excel(IFNy_S, col_names = TRUE) 
IFNy_S = as.data.frame(IFNy_S)

LPS

load("~/Documents/MiGASti/docs/2nd_pass/res_LPS_name.Rdata")
res_LPS <- res_LPS_name
res_sign <- subset(res_LPS, adj.P.Val < 0.05)
check_genes <- merge(res_sign, Patir, by = "symbol")
check_genes2 <- merge(check_genes, LPS_S, by = "symbol")
list(check_genes)
## [[1]]
##        symbol                  ensembl      logFC    AveExpr          t
## 1        ABI3        ENSG00000108798.9 -0.7315467  3.7911611  -6.486933
## 2      ADAM28       ENSG00000042980.12 -0.6134994  6.1627348  -9.412863
## 3       ADAP2       ENSG00000184060.11 -0.3329474  6.0925928  -4.406846
## 4     ALOX5AP        ENSG00000132965.9 -0.6230863  6.8259539  -6.964444
## 5        AOAH       ENSG00000136250.11  0.2342990  3.1517287   2.527523
## 6     APBB1IP       ENSG00000077420.16 -0.9073355  4.9145727 -10.037539
## 7       APOC2       ENSG00000234906.10 -0.6831826  5.3964282  -5.782512
## 8    ARHGAP15       ENSG00000075884.14 -0.2739778  4.8817078  -4.247762
## 9    ARHGAP25       ENSG00000163219.11 -0.2580106  5.0925719  -3.758566
## 10   ARHGAP45       ENSG00000180448.10 -0.4256157  5.4207278  -3.312862
## 11    ARHGDIB        ENSG00000111348.9 -0.7032181  6.4300007  -7.426466
## 12     ARPC1B       ENSG00000130429.14 -0.4188725  7.9286789  -6.042440
## 13     ATP8B4       ENSG00000104043.14 -0.6545184  4.7920418  -6.809694
## 14     B3GNT5       ENSG00000176597.12 -0.2445704  6.7502508  -3.331380
## 15       BIN2       ENSG00000110934.11 -0.2751920  5.3470531  -3.442571
## 16       BLNK       ENSG00000095585.16 -0.4081488  4.1791720  -4.414480
## 17        BTK       ENSG00000010671.15 -0.3734266  4.2360126  -4.336830
## 18       C1QB       ENSG00000173369.16  0.5752284  7.1969202   5.328431
## 19      C3AR1        ENSG00000171860.4 -0.3691277  7.5407682  -4.757979
## 20      CASP1       ENSG00000137752.24  0.3075571  6.9683349   4.714054
## 21       CCR1        ENSG00000163823.4 -0.7466040  6.7706025  -9.311077
## 22       CD14       ENSG00000170458.14 -0.8342929  8.7282612  -8.231798
## 23     CD300A       ENSG00000167851.14 -1.0234111  6.9885587 -10.287958
## 24       CD33       ENSG00000105383.15 -0.4697234  4.3808453  -6.140100
## 25       CD37       ENSG00000104894.12 -0.2871387  3.4428707  -2.735643
## 26        CD4       ENSG00000010610.10 -0.3790571  3.3450555  -3.265742
## 27       CD53       ENSG00000143119.14 -0.3513510  8.4900630  -5.718552
## 28       CD68       ENSG00000129226.14 -0.4257585  9.0011578  -5.434400
## 29       CD69        ENSG00000110848.8 -0.3197752  6.1626867  -3.786885
## 30       CD84       ENSG00000066294.14 -0.2704371  5.9955769  -4.158287
## 31       CD86       ENSG00000114013.16  0.2367185  5.7279397   3.171887
## 32      CH25H        ENSG00000138135.6  0.2302772  5.1130619   2.489147
## 33    CLEC17A       ENSG00000187912.11 -0.7295723  2.4022583  -6.345940
## 34     CLEC7A       ENSG00000172243.17 -0.7350716  4.8416580  -8.467986
## 35     CMKLR1       ENSG00000174600.14 -0.9186878  4.4933167  -7.799033
## 36      CSF1R       ENSG00000182578.13 -0.3952929  7.1434087  -3.555064
## 37     CSF2RA       ENSG00000198223.16 -0.2552374  6.2130116  -4.089678
## 38     CSF2RA ENSG00000198223.16_PAR_Y -0.2552374  6.2130116  -4.089678
## 39       CTSC       ENSG00000109861.16 -0.4547585  6.2200035  -6.585448
## 40     CXCL16       ENSG00000161921.15 -0.5102357  8.8033467  -7.409407
## 41     CYFIP1        ENSG00000273749.5 -0.6723250  6.7611452  -6.654383
## 42      CYTH4       ENSG00000100055.21 -0.4427319  5.8158777  -4.818380
## 43      CYTIP       ENSG00000115165.10 -0.6304457  5.6586007  -7.915956
## 44       DEF6       ENSG00000023892.11 -0.6346078  3.6090877  -5.111730
## 45      DHRS9       ENSG00000073737.16 -0.5106057  5.3305398  -6.101016
## 46      DOCK2       ENSG00000134516.16 -0.5246699  5.6562599  -5.122080
## 47      DOCK8       ENSG00000107099.15 -0.3847695  5.9901877  -4.798606
## 48       EBI3        ENSG00000105246.6  1.1938992  7.0805462  13.666333
## 49      EVI2B        ENSG00000185862.7 -0.6930138  4.6909982  -7.892547
## 50     FCGR1A       ENSG00000150337.13 -0.2581525  4.8654995  -2.594466
## 51     FCGR2A       ENSG00000143226.13  0.6414486  8.2797671   9.195833
## 52       FGL2        ENSG00000127951.7 -1.0309722  4.4359741 -10.165822
## 53       GMFG       ENSG00000130755.13 -0.4607833  5.4033755  -5.506778
## 54     GPR183        ENSG00000169508.7 -1.0689552  8.3141886 -13.030532
## 55      GPR34       ENSG00000171659.15 -0.6478412  4.2699791  -6.231691
## 56       HAMP        ENSG00000105697.9  1.3333697  5.6061563   9.768593
## 57     HAVCR2        ENSG00000135077.9 -0.6648638  7.9920179 -10.906802
## 58        HCK       ENSG00000101336.14  0.7526149  7.1761990   8.984082
## 59      HCLS1       ENSG00000180353.11 -0.3372226  7.3120062  -4.831647
## 60       HCST        ENSG00000126264.9 -0.4133180  4.5630120  -4.608477
## 61       HHEX       ENSG00000152804.11 -0.4702911  3.3498697  -3.889652
## 62    HLA-DMA       ENSG00000204257.15 -0.2354186  4.6914327  -2.436662
## 63   HLA-DPA1        ENSG00000231389.7 -0.2134834  6.8111875  -2.430160
## 64   HLA-DQB1       ENSG00000179344.16 -0.4360125  5.1011760  -5.191196
## 65    HLA-DRA       ENSG00000204287.14 -0.3363907  9.0453887  -4.532659
## 66   HLA-DRB1       ENSG00000196126.11 -0.3389900  7.5880743  -4.571713
## 67   HLA-DRB5        ENSG00000198502.6 -0.2963674  4.8369912  -3.724400
## 68      HPGDS       ENSG00000163106.10 -0.4173363  3.8234974  -5.223995
## 69      IFI16       ENSG00000163565.18 -0.1444604  6.7978895  -2.852923
## 70      IFI30        ENSG00000216490.4 -1.1086826 10.1677144 -13.547426
## 71      IGSF6        ENSG00000140749.9 -0.2770280  6.1660628  -3.036055
## 72      IKZF1       ENSG00000185811.18  0.2151413  4.5457988   2.560553
## 73    IL13RA1       ENSG00000131724.11 -0.2988303  5.0655930  -2.875537
## 74       IL18       ENSG00000150782.12 -0.6002094  5.0500839  -8.016989
## 75       IL6R       ENSG00000160712.13 -0.4927689  6.6645661  -6.746120
## 76     INPP5D       ENSG00000168918.14 -0.4069943  4.5652373  -4.011130
## 77       IRF5       ENSG00000128604.20 -0.3558826  6.2883763  -3.596496
## 78       IRF8       ENSG00000140968.11 -0.2236723  6.8269730  -2.439642
## 79      ITGAL       ENSG00000005844.17 -0.7872375  3.5490661  -6.651881
## 80      ITGAM       ENSG00000169896.17 -0.8512693  4.5031536  -8.751972
## 81      ITGAX       ENSG00000140678.16 -0.5856791  7.2331740  -6.463198
## 82      ITGB2       ENSG00000160255.18 -0.6678426  7.5843897  -6.513742
## 83      KLHL6       ENSG00000172578.12 -0.7791759  5.1703633  -9.268448
## 84     LAPTM5        ENSG00000162511.8 -0.7174323  9.7779171  -8.785836
## 85       LAT2       ENSG00000086730.17 -0.3583015  6.9026984  -5.486108
## 86       LCP2       ENSG00000043462.12 -0.3060499  6.8054676  -3.448254
## 87     LGALS9       ENSG00000168961.17 -0.7055934  4.6428127  -7.269238
## 88     LHFPL2       ENSG00000145685.14 -0.4601202  7.7232487  -4.603045
## 89     LILRB1       ENSG00000104972.15  0.4928060  4.5552644   4.650801
## 90     LILRB2       ENSG00000131042.14  1.1554053  3.3414952   8.522249
## 91      LPAR5       ENSG00000184574.10 -0.6239238  4.3940775  -5.338730
## 92      LPAR6       ENSG00000139679.15 -0.5045018  6.1534601  -5.611465
## 93       LPXN       ENSG00000110031.12 -0.5013470  7.7409306  -7.771368
## 94       MAFB        ENSG00000204103.4  0.3167431  7.3341153   3.048342
## 95      MILR1        ENSG00000271605.6 -0.4621384  3.9703913  -5.464645
## 96      MPEG1        ENSG00000197629.5 -1.1090466  3.5489084  -7.492251
## 97     MS4A4A       ENSG00000110079.18 -0.8120756  4.5578156  -8.767893
## 98      MS4A7       ENSG00000166927.13 -0.2572217  7.3967085  -4.459356
## 99       MSR1       ENSG00000038945.15 -0.9160470  6.7198243 -10.500710
## 100     MYO1F       ENSG00000142347.17 -0.4412426  5.7714534  -4.519963
## 101      NAGA       ENSG00000198951.11 -0.4190158  5.0148001  -4.485858
## 102      NCF4       ENSG00000100365.15 -0.3901339  5.0665349  -5.022411
## 103   NCKAP1L       ENSG00000123338.13 -0.5318320  6.0226397  -5.862864
## 104    OLFML3       ENSG00000116774.12 -0.4681906  3.6137227  -4.389767
## 105      OLR1        ENSG00000173391.9 -0.6663421  7.8076232  -8.864137
## 106       OSM        ENSG00000099985.4 -0.5493470  7.0974084  -5.689848
## 107     PARVG       ENSG00000138964.17 -0.4855933  4.8969656  -5.950795
## 108   PIK3AP1       ENSG00000155629.15  0.6031713  7.0864739   5.393780
## 109    PIK3CG       ENSG00000105851.11 -0.5958851  5.8888407  -6.924368
## 110    PLXDC2       ENSG00000120594.17 -0.9750054  5.6766889  -9.763901
## 111   PPP1R18       ENSG00000146112.12 -0.3175610  5.0932462  -3.919971
## 112     PTPN6       ENSG00000111679.17 -0.4164296  6.6842107  -5.467143
## 113     PTPRC       ENSG00000081237.20 -0.5095680  6.9413924  -6.656446
## 114    PYCARD       ENSG00000103490.14 -0.8893135  3.4275348  -8.312978
## 115     REEP4       ENSG00000168476.12 -0.6537758  3.0745502  -5.945496
## 116      RGS1       ENSG00000090104.12 -0.6102096  9.6429005  -8.162957
## 117     RGS10       ENSG00000148908.15 -0.5320326  5.0037964  -7.724527
## 118    RNASE6        ENSG00000169413.3 -0.3936796  2.1697173  -3.532347
## 119    SAMSN1       ENSG00000155307.18  0.2634724  7.4894326   3.433102
## 120     SASH3       ENSG00000122122.10 -0.4514557  5.1266545  -4.249174
## 121      SCIN       ENSG00000006747.15 -0.7827019  7.0413487  -9.373276
## 122    SELPLG        ENSG00000110876.9 -0.7980377  5.4633307  -7.147707
## 123  SERPINA1       ENSG00000197249.13  0.6239298  7.5713026   6.733910
## 124  SIGLEC11       ENSG00000161640.15 -0.6041310  0.6942928  -3.566824
## 125   SIGLEC7       ENSG00000168995.13 -0.5495042  2.1303686  -4.670219
## 126   SIGLEC9        ENSG00000129450.8 -0.5691580  5.1672295  -7.470732
## 127    SIRPB2       ENSG00000196209.12 -0.3081124  3.0349307  -2.537399
## 128   SLC11A1       ENSG00000018280.17 -0.3600509  7.3775998  -4.606074
## 129   SLC15A3       ENSG00000110446.11 -0.3090272  5.1611519  -3.725619
## 130    SLC2A5       ENSG00000142583.17 -0.5445976  5.0352148  -5.758004
## 131   SLC37A2       ENSG00000134955.11 -1.4181665  4.9189941 -11.322755
## 132    SLC7A7       ENSG00000155465.18  0.2510786  6.1375594   3.067621
## 133     SP140       ENSG00000079263.19 -0.2884089  3.2306708  -3.398323
## 134    SP140L       ENSG00000185404.16 -0.1766879  4.3909756  -2.563167
## 135      SPP1       ENSG00000118785.14 -0.8579575 12.8814276  -9.207731
## 136      SRGN        ENSG00000122862.5 -0.1888714  9.6752096  -2.899416
## 137   ST6GAL1       ENSG00000073849.15 -0.5710720  6.0708180  -5.313297
## 138     STAB1       ENSG00000010327.10 -0.5073964  4.2096668  -3.582153
## 139       SYK       ENSG00000165025.15 -0.3793170  5.7141837  -5.106462
## 140      TAL1       ENSG00000162367.11 -0.3076033  2.4931984  -3.125826
## 141    TBXAS1       ENSG00000059377.17 -0.5175607  5.7943201  -7.175636
## 142      TFEC       ENSG00000105967.16 -0.1846349  5.2285956  -2.699136
## 143      TLR1        ENSG00000174125.8 -0.2372398  5.9448292  -3.338279
## 144      TLR3       ENSG00000164342.12 -0.3008746  3.2524804  -3.292660
## 145      TLR6       ENSG00000174130.12 -0.2897109  2.9606228  -2.980686
## 146      TMC8       ENSG00000167895.14 -0.4539080  2.0237356  -3.447312
## 147  TMEM106A        ENSG00000184988.8  0.5185647  4.9457200   7.603281
## 148   TMEM119        ENSG00000183160.9 -0.9786815  3.9833132  -7.692008
## 149 TNFAIP8L2        ENSG00000163154.6 -0.3363110  4.0569107  -4.035028
## 150  TNFRSF1B       ENSG00000028137.19  0.4753121  9.3800728   3.591034
## 151    TNFSF8        ENSG00000106952.7 -0.1821785  4.7434476  -2.414751
## 152  TRAF3IP3       ENSG00000009790.15 -0.3932434  3.6228604  -4.091463
## 153     TREM2       ENSG00000095970.16 -0.6410849  4.8308940  -5.426079
## 154    TRIM22       ENSG00000132274.16  0.2566126  5.3109085   2.760553
## 155    TRIM38       ENSG00000112343.11 -0.2874952  5.7795323  -5.401851
## 156    TYROBP       ENSG00000011600.11 -0.6820008  7.8925205  -8.208443
## 157     VAMP8       ENSG00000118640.11 -0.6303839  5.8357256  -7.982244
## 158      VAV1        ENSG00000141968.8  0.6199533  4.5907131   6.624206
## 159       WAS       ENSG00000015285.10 -0.5500483  0.6405715  -3.526995
## 160     WDFY4       ENSG00000128815.19 -0.3731111  5.3762383  -3.300569
##          P.Value    adj.P.Val      z.std
## 1   3.319408e-10 7.977809e-09  -6.283075
## 2   9.503297e-19 1.168357e-16  -8.840803
## 3   1.442676e-05 1.103673e-04  -4.337263
## 4   1.876747e-11 5.795181e-10  -6.715304
## 5   1.196448e-02 3.773504e-02   2.513190
## 6   7.768086e-21 1.295514e-18  -9.362759
## 7   1.741729e-08 2.869813e-07  -5.635874
## 8   2.810782e-05 1.979728e-04  -4.188279
## 9   2.035151e-04 1.127446e-03  -3.714613
## 10  1.031716e-03 4.583236e-03  -3.281732
## 11  9.982428e-13 4.039092e-11  -7.130749
## 12  4.195547e-09 8.022572e-08  -5.876293
## 13  4.771648e-11 1.337945e-09  -6.577892
## 14  9.650422e-04 4.326448e-03  -3.300525
## 15  6.528037e-04 3.071669e-03  -3.408670
## 16  1.378506e-05 1.059229e-04  -4.347257
## 17  1.944800e-05 1.430737e-04  -4.271136
## 18  1.870597e-07 2.371195e-06   5.211758
## 19  2.957837e-06 2.733897e-05  -4.673726
## 20  3.596198e-06 3.238098e-05   4.633451
## 21  2.016727e-18 2.308514e-16  -8.756351
## 22  4.693476e-15 2.961059e-13  -7.834865
## 23  1.075031e-21 2.041387e-19  -9.569424
## 24  2.438629e-09 4.938803e-08  -5.965515
## 25  6.570528e-03 2.266885e-02  -2.717862
## 26  1.210334e-03 5.254186e-03  -3.236434
## 27  2.420248e-08 3.858515e-07  -5.578914
## 28  1.074503e-07 1.455359e-06  -5.313651
## 29  1.825762e-04 1.029891e-03  -3.741980
## 30  4.121342e-05 2.765683e-04  -4.100570
## 31  1.662058e-03 6.928192e-03   3.144791
## 32  1.331890e-02 4.114742e-02   2.475126
## 33  7.283105e-10 1.645261e-08  -6.159813
## 34  8.484073e-16 6.234331e-14  -8.047011
## 35  8.918085e-14 4.501051e-12  -7.456012
## 36  4.358848e-04 2.165760e-03  -3.517346
## 37  5.462515e-05 3.553785e-04  -4.034902
## 38  5.462515e-05 3.553785e-04  -4.034902
## 39  1.844675e-10 4.618672e-09  -6.373745
## 40  1.121152e-12 4.461114e-11  -7.114751
## 41  1.231335e-10 3.208666e-09  -6.435419
## 42  2.234152e-06 2.134968e-05  -4.731001
## 43  3.645805e-14 1.992105e-12  -7.573043
## 44  5.499877e-07 6.226809e-06  -5.007999
## 45  3.057586e-09 6.033071e-08  -5.928476
## 46  5.202791e-07 5.932481e-06  -5.018679
## 47  2.471836e-06 2.329600e-05  -4.710439
## 48  1.206832e-33 1.285880e-30  12.089044
## 49  4.509757e-14 2.389299e-12  -7.545379
## 50  9.905265e-03 3.212848e-02  -2.579119
## 51  4.470390e-18 4.843933e-16   8.666134
## 52  2.736898e-21 4.815685e-19  -9.472322
## 53  7.447739e-08 1.048486e-06  -5.380020
## 54  2.391319e-31 1.763965e-28 -11.646481
## 55  1.428941e-09 3.045073e-08  -6.052185
## 56  6.409238e-20 9.455598e-18   9.137196
## 57  1.058678e-23 2.603127e-21 -10.036012
## 58  2.385623e-17 2.276311e-15   8.473288
## 59  2.089240e-06 2.017600e-05  -4.744595
## 60  5.802382e-06 4.949330e-05  -4.533465
## 61  1.217456e-04 7.164651e-04  -3.842584
## 62  1.536145e-02 4.643804e-02  -2.423744
## 63  1.564118e-02 4.715961e-02  -2.417182
## 64  3.736837e-07 4.425482e-06  -5.081897
## 65  8.257920e-06 6.759652e-05  -4.458386
## 66  6.934729e-06 5.792734e-05  -4.495682
## 67  2.315941e-04 1.257216e-03  -3.681799
## 68  3.199370e-07 3.864025e-06  -5.111307
## 69  4.612698e-03 1.670448e-02  -2.832906
## 70  2.296893e-33 2.318533e-30 -12.036051
## 71  2.590311e-03 1.021163e-02  -3.012587
## 72  1.089813e-02 3.484168e-02   2.545948
## 73  4.305665e-03 1.574120e-02  -2.854854
## 74  2.058770e-14 1.182190e-12  -7.646903
## 75  6.738363e-11 1.846215e-09  -6.526368
## 76  7.529144e-05 4.699038e-04  -3.958914
## 77  3.741442e-04 1.898336e-03  -3.557680
## 78  1.524328e-02 4.613394e-02  -2.426547
## 79  1.252040e-10 3.253778e-09  -6.432885
## 80  1.158990e-16 9.792191e-15  -8.287248
## 81  3.745433e-10 8.912364e-09  -6.264284
## 82  2.896616e-10 7.023286e-09  -6.304213
## 83  2.551669e-18 2.845259e-16  -8.729781
## 84  9.138110e-17 7.789325e-15  -8.315481
## 85  8.359676e-08 1.160972e-06  -5.359188
## 86  6.371613e-04 3.010623e-03  -3.415281
## 87  2.715139e-12 1.005283e-10  -6.991732
## 88  6.024404e-06 5.110218e-05  -4.525531
## 89  4.889575e-06 4.264537e-05   4.569471
## 90  6.469758e-16 4.963339e-14   8.080130
## 91  1.790201e-07 2.281347e-06  -5.219900
## 92  4.321733e-08 6.455337e-07  -5.477174
## 93  1.100261e-13 5.424655e-12  -7.428271
## 94  2.490978e-03 9.868718e-03   3.024435
## 95  9.232364e-08 1.267484e-06  -5.341219
## 96  6.339797e-13 2.649041e-11  -7.192968
## 97  1.167648e-16 9.822072e-15  -8.286362
## 98  1.137040e-05 8.952088e-05  -4.389323
## 99  2.681197e-22 5.529320e-20  -9.711964
## 100 8.779835e-06 7.120019e-05  -4.445229
## 101 1.016119e-05 8.103182e-05  -4.413715
## 102 8.475900e-07 9.071388e-06  -4.924078
## 103 1.123147e-08 1.942366e-07  -5.710999
## 104 1.534287e-05 1.164468e-04  -4.323707
## 105 5.224919e-17 4.726826e-15  -8.381519
## 106 2.860225e-08 4.474409e-07  -5.549784
## 107 7.029321e-09 1.274247e-07  -5.790223
## 108 1.356250e-07 1.793898e-06   5.271078
## 109 2.322556e-11 7.048149e-10  -6.684158
## 110 6.904198e-20 1.003149e-17  -9.129146
## 111 1.076671e-04 6.436867e-04  -3.872630
## 112 9.277471e-08 1.270947e-06  -5.340336
## 113 1.216437e-10 3.174157e-09  -6.437267
## 114 2.543066e-15 1.723444e-13  -7.911500
## 115 7.196630e-09 1.302115e-07  -5.786270
## 116 8.002902e-15 4.796489e-13  -7.767534
## 117 1.493532e-13 7.125486e-12  -7.387733
## 118 4.709527e-04 2.324344e-03  -3.496756
## 119 6.727907e-04 3.154079e-03   3.400434
## 120 2.833151e-05 1.990366e-04  -4.186479
## 121 1.422101e-18 1.694067e-16  -8.795660
## 122 5.908200e-12 2.030705e-10  -6.881846
## 123 7.649635e-11 2.072208e-09   6.507334
## 124 4.137600e-04 2.068552e-03  -3.531148
## 125 4.427727e-06 3.898962e-05  -4.590223
## 126 7.738528e-13 3.191768e-11  -7.165709
## 127 1.165434e-02 3.689645e-02  -2.522441
## 128 5.957812e-06 5.060740e-05  -4.527881
## 129 2.297162e-04 1.249143e-03  -3.683874
## 130 1.996939e-08 3.253975e-07  -5.612266
## 131 2.663945e-25 8.240613e-23 -10.393154
## 132 2.343112e-03 9.348563e-03   3.042899
## 133 7.600101e-04 3.512346e-03  -3.366963
## 134 1.081201e-02 3.458732e-02  -2.548717
## 135 4.329422e-18 4.717840e-16  -8.669784
## 136 4.004766e-03 1.478772e-02  -2.877786
## 137 2.024309e-07 2.537530e-06  -5.197091
## 138 3.950766e-04 1.987731e-03  -3.543351
## 139 5.709522e-07 6.437561e-06  -5.000792
## 140 1.932018e-03 7.907422e-03  -3.100488
## 141 4.966567e-12 1.741386e-10  -6.906529
## 142 7.316133e-03 2.484790e-02  -2.682101
## 143 9.405745e-04 4.228617e-03  -3.307724
## 144 1.103551e-03 4.846576e-03  -3.262703
## 145 3.113337e-03 1.195170e-02  -2.956320
## 146 6.410486e-04 3.024519e-03  -3.413625
## 147 3.240273e-13 1.451991e-11   7.284016
## 148 1.834929e-13 8.602823e-12  -7.360303
## 149 6.812351e-05 4.312016e-04  -3.982746
## 150 3.808549e-04 1.928492e-03   3.553007
## 151 1.630522e-02 4.870994e-02  -2.402011
## 152 5.426259e-05 3.536195e-04  -4.036465
## 153 1.132847e-07 1.526836e-06  -5.304012
## 154 6.105338e-03 2.130149e-02   2.742070
## 155 1.311488e-07 1.743107e-06  -5.277233
## 156 5.535879e-15 3.436007e-13  -7.814096
## 157 2.515605e-14 1.414862e-12  -7.621081
## 158 1.503508e-10 3.844772e-09   6.405019
## 159 4.797228e-04 2.356712e-03  -3.491830
## 160 1.068462e-03 4.714065e-03  -3.271850
list(check_genes2)
## [[1]]
##     symbol            ensembl      logFC   AveExpr          t      P.Value
## 1    DHRS9 ENSG00000073737.16 -0.5106057  5.330540  -6.101016 3.057586e-09
## 2    IFI30  ENSG00000216490.4 -1.1086826 10.167714 -13.547426 2.296893e-33
## 3    IFI30  ENSG00000216490.4 -1.1086826 10.167714 -13.547426 2.296893e-33
## 4    LPAR6 ENSG00000139679.15 -0.5045018  6.153460  -5.611465 4.321733e-08
## 5 SERPINA1 ENSG00000197249.13  0.6239298  7.571303   6.733910 7.649635e-11
## 6   TYROBP ENSG00000011600.11 -0.6820008  7.892520  -8.208443 5.535879e-15
## 7   TYROBP ENSG00000011600.11 -0.6820008  7.892520  -8.208443 5.535879e-15
##      adj.P.Val      z.std        isoform_id            gene_id  estimates
## 1 6.033071e-08  -5.928476 ENST00000602501.5 ENSG00000073737.16 -0.5398283
## 2 2.318533e-30 -12.036051 ENST00000407280.4  ENSG00000216490.4  0.5197980
## 3 2.318533e-30 -12.036051 ENST00000600463.1  ENSG00000216490.4 -0.6825184
## 4 6.455337e-07  -5.477174 ENST00000465365.6 ENSG00000139679.15 -0.5925786
## 5 2.072208e-09   6.507334 ENST00000393088.8 ENSG00000197249.13 -0.4439107
## 6 3.436007e-13  -7.814096 ENST00000262629.8 ENSG00000011600.11 -0.1949865
## 7 3.436007e-13  -7.814096 ENST00000587837.5 ENSG00000011600.11  0.3024205
##           se       df                 pval          regular_FDR
## 1 0.07746672 435.7763 1.18987866772115e-11  1.02722225384367e-8
## 2 0.07721825 437.7763 5.28182733000788e-11   3.3364401468262e-8
## 3 0.09755621 437.7763 9.91249031844696e-12  9.16869952705206e-9
## 4 0.09416851 437.7763 7.57769077819475e-10  3.43533852872881e-7
## 5 0.05329468 437.7763 1.05353870734862e-15 3.41069987270273e-12
## 6 0.02184097 437.7763 1.20818354352253e-17 7.82268639842252e-14
## 7 0.03526846 437.7763 1.72813527190952e-16 8.95139508143694e-13
##          empirical_pval         empirical_FDR
## 1 8.7578070262586094E-6 6.6711307109726999E-3
## 2 7.3788092865354997E-6 6.3701260570661004E-3
## 3 8.0674128900333706E-6 6.5293102012179399E-3
## 4 5.6816816063355102E-5 2.3895917808245799E-2
## 5   1.32928407695331e-7   4.30339103862672E-4
## 6    1.7968502696168e-8   1.08266642271835E-4
## 7   2.09017032070419e-8   1.08266642271835E-4
res <- res_LPS_name[!duplicated(res_LPS_name$symbol), ]
rownames(res) <- res$symbol
EnhancedVolcano(res,
    lab = rownames(res),
    x = 'logFC',
    y = 'adj.P.Val')

volcano_plot(res_LPS, title = "DEG", 
               subtitle = "LPS vs unstimulated",
               annotate_by = c('DHRS9', 'IFI30', 'LCP1', 'LPAR6', 'SERPINA1', 'TYROBP', 'CCR1', 'CD14', 'ADAM28', 'CSF1R', 'FCGR1A', 'GPR34', 'HLA_DPA1', 'IL6R', 'IRF8', 'MS4A4A', 'OLR1', 'RGS1', 'ITGAM', 'IL6', 'CCL5', 'IL23A', 'TNF', 'IDO1', 'IL12B')) 
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text_repel).
## Warning: Removed 1 rows containing missing values (geom_point).

## Warning: Removed 1 rows containing missing values (geom_point).

sign <- subset(res, adj.P.Val < 0.05)
sign_LF <- subset(sign, logFC > 0)
length(sign_LF$symbol)
## [1] 734
sign_LF <- subset(sign, logFC < 0)
length(sign_LF$symbol)
## [1] 5713
sign_LF <- subset(sign, logFC > 1)
length(sign_LF$symbol)
## [1] 80
sign_LF <- subset(sign, logFC < -1)
length(sign_LF$symbol)
## [1] 47

IFNy

# Function Vulcano plot 
volcano_plot <- function(res, title = NULL, subtitle = NULL, annotate_by = NULL, type ='ALS'){
  res <- 
    mutate(res,
           sig = case_when(
      adj.P.Val >= 0.05 ~ "non_sig",
      adj.P.Val < 0.05 & abs(logFC) < 1 ~ "sig",
      adj.P.Val < 0.05 & abs(logFC) >= 1 ~ "sig - strong"
    )) %>%
    mutate(direction = ifelse(logFC > 0, "up", "down")) %>%
    mutate(logFC = case_when(
      logFC > 5 ~ Inf,
    logFC < -5 ~ -Inf,
    TRUE ~ logFC
    )) %>%
    mutate(class = paste(sig, direction))
  if( type == "ALS"){
    xpos <- 0.5
    ymax <- 80
    xlim <- c(-3,3)
  }else{
    xpos <- 0.025
    ymax <- 8.5
    xlim <- c(-0.042, 0.042)
  }
  de_tally <- group_by(res, sig, direction, class) %>% tally() %>%
    filter(sig != "non_sig") %>%
    mutate( position = ifelse(sig == "sig", xpos, 2) ) %>%
    mutate(position = ifelse( direction == "down", -1 * position, position)) %>%
    mutate(n = formatC(n, format="f", big.mark=",", digits=0))
  plot <- res %>%
    mutate( P.Value = ifelse( P.Value < 1e-90, Inf, P.Value)) %>% #threshold at 1e16
    ggplot(aes(x = logFC, y = -log10(P.Value))) + 
    #geom_point(aes(colour = class ), size = 0.5) +
    rasterise(geom_point(aes(colour = class ), size = 0.5), dpi = 300) +
    scale_colour_manual(values = c("non_sig up" = "gray", 
                                   "non_sig down" = "gray",
                                   "sig up" = "#EB7F56", 
                                   "sig - strong up" = "#B61927",
                                   "sig down" = "#4F8FC4",
                                   "sig - strong down" = "dodgerblue4"
                                   )) +
    theme_bw() +
    labs(y = expression(-log[10]~P~value), x = expression(log[2]~"(fold change)"), title = title, subtitle = subtitle) +
    guides(colour = FALSE) +
    scale_y_continuous(expand = c(0,0), limits = c(0,ymax)) +
    theme_bw() +
    theme(
      plot.title = element_text(hjust = 0.5),
      plot.subtitle = element_text(hjust = 0.5),
      panel.border = element_blank(),
      axis.ticks = element_line(colour = "black")
    ) +
    geom_text(fontface = "bold", data = de_tally, aes(x = position, y = ymax - 0.5, label = n, colour = class), size = 2.5 ) +
    scale_x_continuous(limits = xlim)
  if(!is.null(annotate_by)){
    plot <- plot + 
      ggrepel::geom_text_repel(
        fontface = "italic",
        data = filter(res, symbol %in% annotate_by), 
        aes(x = logFC, y = -log10(P.Value), label = symbol), 
        min.segment.length = unit(0, "lines"),
        size = 2.5) +
      geom_point(
        data = filter(res, symbol %in% annotate_by), size = 0.8, colour = "black"
      ) +
      geom_point(aes(colour = class ),
        data = filter(res, symbol %in% annotate_by), size = 0.6
      )
  }
  return(plot)
}
load("~/Documents/MiGASti/docs/2nd_pass/res_IFNy_name.Rdata")
res_IFNy <- res_IFNy_name
res_sign <- subset(res_IFNy, adj.P.Val < 0.05)
check_genes <- merge(res_sign, Patir, by = "symbol")
check_genes2 <- merge(check_genes, LPS_S, by = "symbol")
list(check_genes)
## [[1]]
##      symbol            ensembl      logFC  AveExpr         t      P.Value
## 1    ADAM28 ENSG00000042980.12  0.2445556 6.162735  3.338115 9.414765e-04
## 2    ATP8B4 ENSG00000104043.14 -0.3678090 4.792042 -3.320088 1.001867e-03
## 3      C1QA ENSG00000173372.17  0.4473711 5.375107  3.274262 1.174756e-03
## 4      C1QB ENSG00000173369.16  1.4950352 7.196920 12.212355 1.881100e-28
## 5      C1QC ENSG00000159189.12  0.9552025 4.014993  6.145629 2.379923e-09
## 6        C2 ENSG00000166278.15  1.2913424 3.652473  9.285673 2.360866e-18
## 7     CASP1 ENSG00000137752.24  0.5569359 6.968335  7.412606 1.029880e-12
## 8      CD53 ENSG00000143119.14  0.3816870 8.490063  5.455529 9.461957e-08
## 9      CD69  ENSG00000110848.8  0.3367950 6.162687  3.516587 5.010847e-04
## 10     CD74 ENSG00000019582.15  0.5537779 9.496285  5.622212 4.106910e-08
## 11     CD86 ENSG00000114013.16  0.3677995 5.727940  4.294569 2.324681e-05
## 12    CIITA ENSG00000179583.19  1.5161205 4.246414 11.054434 1.967703e-24
## 13  CLEC17A ENSG00000187912.11 -0.4473676 2.402258 -3.443822 6.465710e-04
## 14    CSF1R ENSG00000182578.13 -0.4510465 7.143409 -3.470767 5.909571e-04
## 15     CTSC ENSG00000109861.16  0.2868631 6.220004  3.670261 2.829209e-04
## 16     CTSS ENSG00000163131.11  0.8097270 7.955391 11.213049 4.425687e-25
## 17     CYBB  ENSG00000165168.7  0.4503167 5.628404  4.549540 7.631678e-06
## 18   FCGR1A ENSG00000150337.13  1.1898768 4.865499 10.976600 4.520483e-24
## 19   FCGR1B ENSG00000198019.12  1.3807170 2.932521 11.134208 1.008166e-24
## 20     FGD2 ENSG00000146192.15  0.6743597 4.479590  6.223115 1.527285e-09
## 21     FGL2  ENSG00000127951.7  0.7536791 4.435974  7.021387 1.242799e-11
## 22     FYB1 ENSG00000082074.17  0.6205950 5.135832  6.998485 1.499991e-11
## 23   GIMAP2 ENSG00000106560.11  1.0552454 2.252500  9.266118 2.591245e-18
## 24   GIMAP4 ENSG00000133574.10  0.8980597 3.645304  8.017882 1.934534e-14
## 25   GPR183  ENSG00000169508.7 -0.3910048 8.314189 -4.164766 4.020115e-05
## 26     HAMP  ENSG00000105697.9 -0.6065948 5.606156 -3.471816 5.870420e-04
## 27  HLA-DMA ENSG00000204257.15  0.9061608 4.691433  8.480273 8.005587e-16
## 28  HLA-DMB  ENSG00000242574.9  0.8223149 4.844138  7.140873 6.037458e-12
## 29  HLA-DOA ENSG00000204252.14  0.9176943 3.116314  5.992123 5.431441e-09
## 30 HLA-DPA1  ENSG00000231389.7  0.7390717 6.811187  7.430903 9.840796e-13
## 31 HLA-DPB1 ENSG00000223865.11  0.7924517 5.661476  7.731348 1.363025e-13
## 32 HLA-DQA1 ENSG00000196735.11  0.4295870 5.253373  3.941001 9.981022e-05
## 33 HLA-DQB1 ENSG00000179344.16  0.7393403 5.101176  7.924740 3.900733e-14
## 34  HLA-DRA ENSG00000204287.14  0.5401374 9.045389  6.368700 6.657304e-10
## 35 HLA-DRB1 ENSG00000196126.11  0.5628333 7.588074  6.654644 1.240214e-10
## 36 HLA-DRB5  ENSG00000198502.6  0.5558522 4.836991  6.113118 2.860212e-09
## 37    IFI16 ENSG00000163565.18  0.5624209 6.797890  9.809994 4.408260e-20
## 38    IGSF6  ENSG00000140749.9  0.8961711 6.166063  8.789660 8.441929e-17
## 39   IL10RA ENSG00000110324.10  0.3745346 8.217334  3.382113 8.063416e-04
## 40     IRF5 ENSG00000128604.20  1.1480152 6.288376 10.604910 9.492382e-23
## 41     IRF8 ENSG00000140968.11  0.9152019 6.826973  8.971667 2.405256e-17
## 42     LY75 ENSG00000054219.11  0.5663322 3.029098  5.132330 4.876170e-07
## 43     MNDA  ENSG00000163563.8  0.6392880 3.869912  5.303921 2.082913e-07
## 44     NCF4 ENSG00000100365.15  0.4050304 5.066535  4.623781 5.452224e-06
## 45     OLR1  ENSG00000173391.9 -0.3827518 7.807623 -4.428191 1.296483e-05
## 46    PTAFR ENSG00000169403.12  0.4051247 7.468216  4.721621 3.446669e-06
## 47    PTPN6 ENSG00000111679.17  0.4923307 6.684211  5.716994 2.489254e-08
## 48    PTPRC ENSG00000081237.20  0.3508692 6.941392  4.061360 6.121926e-05
## 49  SIGLEC9  ENSG00000129450.8 -0.3043973 5.167230 -3.466704 5.987334e-04
## 50    SP140 ENSG00000079263.19  0.6532135 3.230671  7.018352 1.203976e-11
## 51   SP140L ENSG00000185404.16  0.6381002 4.390976  8.376446 1.441256e-15
## 52   SUCNR1  ENSG00000198829.6  0.5290029 2.902352  4.955865 1.153527e-06
## 53     TFEC ENSG00000105967.16  0.2458685 5.228596  3.179087 1.617975e-03
## 54 TNFRSF1B ENSG00000028137.19 -0.6225944 9.380073 -3.954634 9.388946e-05
## 55   TNFSF8  ENSG00000106952.7 -0.4253568 4.743448 -4.795618 2.480627e-06
## 56   TRIM22 ENSG00000132274.16  1.1680970 5.310909 11.283583 4.182917e-25
##       adj.P.Val     z.std
## 1  3.178975e-02  3.307456
## 2  3.353370e-02 -3.290002
## 3  3.736426e-02  3.244939
## 4  7.215523e-26 11.063729
## 5  2.535808e-07  5.969493
## 6  5.031006e-16  8.738567
## 7  1.507791e-10  7.126454
## 8  8.682817e-06  5.336765
## 9  1.941476e-02  3.480176
## 10 3.899328e-06  5.486192
## 11 1.393283e-03  4.231180
## 12 5.896653e-22 10.200739
## 13 2.375591e-02 -3.411287
## 14 2.209350e-02 -3.435731
## 15 1.216623e-02  3.630456
## 16 1.414671e-22 10.344642
## 17 5.082221e-04  4.475264
## 18 1.333821e-21 10.119646
## 19 3.118648e-22 10.265482
## 20 1.654904e-07  6.041457
## 21 1.678566e-09  6.775147
## 22 1.997800e-09  6.747901
## 23 5.430515e-16  8.728040
## 24 3.198484e-12  7.654906
## 25 2.234834e-03 -4.106321
## 26 2.199000e-02 -3.437532
## 27 1.395810e-13  8.054115
## 28 8.390753e-10  6.878763
## 29 5.661391e-07  5.833384
## 30 1.453954e-10  7.132715
## 31 2.142742e-11  7.399885
## 32 4.998068e-03  3.891053
## 33 6.286737e-12  7.564262
## 34 7.600025e-08  6.174025
## 35 1.505447e-08  6.434327
## 36 3.014067e-07  5.939426
## 37 9.830932e-18  9.177595
## 38 1.587331e-14  8.324873
## 39 2.832386e-02  3.350609
## 40 2.638469e-20  9.817221
## 41 4.755712e-15  8.472333
## 42 4.193725e-05  5.031122
## 43 1.849453e-05  5.191782
## 44 3.763967e-04  4.546589
## 45 8.152541e-04 -4.360698
## 46 2.532708e-04  4.642231
## 47 2.448941e-06  5.574021
## 48 3.252421e-03  4.008061
## 49 2.234068e-02 -3.432188
## 50 1.637664e-09  6.779734
## 51 2.468022e-13  7.981876
## 52 9.414257e-05  4.863458
## 53 4.766688e-02  3.152647
## 54 4.726262e-03 -3.905864
## 55 1.882483e-04 -4.709716
## 56 1.359732e-22 10.350044
list(check_genes2)
## [[1]]
##  [1] symbol         ensembl        logFC          AveExpr        t             
##  [6] P.Value        adj.P.Val      z.std          isoform_id     gene_id       
## [11] estimates      se             df             pval           regular_FDR   
## [16] empirical_pval empirical_FDR 
## <0 rows> (or 0-length row.names)
res <- res_IFNy_name[!duplicated(res_IFNy_name$symbol), ]
rownames(res) <- res$symbol
EnhancedVolcano(res,
    lab = rownames(res),
    x = 'logFC',
    y = 'adj.P.Val')

volcano_plot(res_IFNy, title = "DEG", 
               subtitle = "IFNy vs unstimulated",
               annotate_by = c('C1QB', 'C2', 'CIITA', 'GBP1', 'GBP5', 'IDO1', 'IFITM2', 'IL15', 'IL18BP', 'IRF1', 'MLKL', 'OAS1', 'CXCL9', 'CXCL10','WARS', 'CXCL10', 'IRF1', 'CCL24', 'TMEM160', 'HPS6', 'IL24'))
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 2 rows containing missing values (geom_text_repel).
## Warning: Removed 2 rows containing missing values (geom_point).

## Warning: Removed 2 rows containing missing values (geom_point).

sign <- subset(res, adj.P.Val < 0.05)
sign_LF <- subset(sign, logFC > 0)
length(sign_LF$symbol)
## [1] 433
sign_LF <- subset(sign, logFC < 0)
length(sign_LF$symbol)
## [1] 224
sign_LF <- subset(sign, logFC > 1)
length(sign_LF$symbol)
## [1] 94
sign_LF <- subset(sign, logFC < -1)
length(sign_LF$symbol)
## [1] 0

R848

# Function Vulcano plot 
volcano_plot <- function(res, title = NULL, subtitle = NULL, annotate_by = NULL, type ='ALS'){
  res <- 
    mutate(res,
           sig = case_when(
      adj.P.Val >= 0.05 ~ "non_sig",
      adj.P.Val < 0.05 & abs(logFC) < 1 ~ "sig",
      adj.P.Val < 0.05 & abs(logFC) >= 1 ~ "sig - strong"
    )) %>%
    mutate(direction = ifelse(logFC > 0, "up", "down")) %>%
    mutate(logFC = case_when(
      logFC > 5 ~ Inf,
    logFC < -5 ~ -Inf,
    TRUE ~ logFC
    )) %>%
    mutate(class = paste(sig, direction))
  if( type == "ALS"){
    xpos <- 0.5
    ymax <- 30
    xlim <- c(-3,3)
  }else{
    xpos <- 0.025
    ymax <- 8.5
    xlim <- c(-0.042, 0.042)
  }
  de_tally <- group_by(res, sig, direction, class) %>% tally() %>%
    filter(sig != "non_sig") %>%
    mutate( position = ifelse(sig == "sig", xpos, 2) ) %>%
    mutate(position = ifelse( direction == "down", -1 * position, position)) %>%
    mutate(n = formatC(n, format="f", big.mark=",", digits=0))
  plot <- res %>%
    mutate( P.Value = ifelse( P.Value < 1e-90, Inf, P.Value)) %>% #threshold at 1e16
    ggplot(aes(x = logFC, y = -log10(P.Value))) + 
    #geom_point(aes(colour = class ), size = 0.5) +
    rasterise(geom_point(aes(colour = class ), size = 0.5), dpi = 300) +
    scale_colour_manual(values = c("non_sig up" = "gray", 
                                   "non_sig down" = "gray",
                                   "sig up" = "#EB7F56", 
                                   "sig - strong up" = "#B61927",
                                   "sig down" = "#4F8FC4",
                                   "sig - strong down" = "dodgerblue4"
                                   )) +
    theme_bw() +
    labs(y = expression(-log[10]~P~value), x = expression(log[2]~"(fold change)"), title = title, subtitle = subtitle) +
    guides(colour = FALSE) +
    scale_y_continuous(expand = c(0,0), limits = c(0,ymax)) +
    theme_bw() +
    theme(
      plot.title = element_text(hjust = 0.5),
      plot.subtitle = element_text(hjust = 0.5),
      panel.border = element_blank(),
      axis.ticks = element_line(colour = "black")
    ) +
    geom_text(fontface = "bold", data = de_tally, aes(x = position, y = ymax - 0.5, label = n, colour = class), size = 2.5 ) +
    scale_x_continuous(limits = xlim)
  if(!is.null(annotate_by)){
    plot <- plot + 
      ggrepel::geom_text_repel(
        fontface = "italic",
        data = filter(res, symbol %in% annotate_by), 
        aes(x = logFC, y = -log10(P.Value), label = symbol), 
        min.segment.length = unit(0, "lines"),
        size = 2.5) +
      geom_point(
        data = filter(res, symbol %in% annotate_by), size = 0.8, colour = "black"
      ) +
      geom_point(aes(colour = class ),
        data = filter(res, symbol %in% annotate_by), size = 0.6
      )
  }
  return(plot)
}
load("~/Documents/MiGASti/docs/2nd_pass/res_R848_name.Rdata")
res_R848 <- res_R848_name
res <- res_R848_name[!duplicated(res_R848_name$symbol), ]
rownames(res) <- res$symbol
EnhancedVolcano(res,
    lab = rownames(res),
    x = 'logFC',
    y = 'adj.P.Val')

volcano_plot(res_R848, title = "DEG", 
               subtitle = "R848 vs unstimulated",
               annotate_by = c('C12orf57',  'CXCL3', 'DNAAF1', 'GAS7', 'IFI30', 'IL6', 'LUCAT1', 'MCPH1', 'SPP1', 'WDR74', 'TNF', 'IL6', 'IL12B', 'IL23A', 'RAB7B', 'ITGB7'))

sign <- subset(res, adj.P.Val < 0.05)
sign_LF <- subset(sign, logFC > 0)
length(sign_LF$symbol)
## [1] 345
sign_LF <- subset(sign, logFC < 0)
length(sign_LF$symbol)
## [1] 2320
sign_LF <- subset(sign, logFC > 1)
length(sign_LF$symbol)
## [1] 51
sign_LF <- subset(sign, logFC < -1)
length(sign_LF$symbol)
## [1] 28

DEX

# Function Vulcano plot 
volcano_plot <- function(res, title = NULL, subtitle = NULL, annotate_by = NULL, type ='ALS'){
  res <- 
    mutate(res,
           sig = case_when(
      adj.P.Val >= 0.05 ~ "non_sig",
      adj.P.Val < 0.05 & abs(logFC) < 1 ~ "sig",
      adj.P.Val < 0.05 & abs(logFC) >= 1 ~ "sig - strong"
    )) %>%
    mutate(direction = ifelse(logFC > 0, "up", "down")) %>%
    mutate(logFC = case_when(
      logFC > 5 ~ Inf,
    logFC < -5 ~ -Inf,
    TRUE ~ logFC
    )) %>%
    mutate(class = paste(sig, direction))
  if( type == "ALS"){
    xpos <- 0.5
    ymax <- 40
    xlim <- c(-3,3)
  }else{
    xpos <- 0.025
    ymax <- 8.5
    xlim <- c(-0.042, 0.042)
  }
  de_tally <- group_by(res, sig, direction, class) %>% tally() %>%
    filter(sig != "non_sig") %>%
    mutate( position = ifelse(sig == "sig", xpos, 2) ) %>%
    mutate(position = ifelse( direction == "down", -1 * position, position)) %>%
    mutate(n = formatC(n, format="f", big.mark=",", digits=0))
  plot <- res %>%
    mutate( P.Value = ifelse( P.Value < 1e-90, Inf, P.Value)) %>% #threshold at 1e16
    ggplot(aes(x = logFC, y = -log10(P.Value))) + 
    #geom_point(aes(colour = class ), size = 0.5) +
    rasterise(geom_point(aes(colour = class ), size = 0.5), dpi = 300) +
    scale_colour_manual(values = c("non_sig up" = "gray", 
                                   "non_sig down" = "gray",
                                   "sig up" = "#EB7F56", 
                                   "sig - strong up" = "#B61927",
                                   "sig down" = "#4F8FC4",
                                   "sig - strong down" = "dodgerblue4"
                                   )) +
    theme_bw() +
    labs(y = expression(-log[10]~P~value), x = expression(log[2]~"(fold change)"), title = title, subtitle = subtitle) +
    guides(colour = FALSE) +
    scale_y_continuous(expand = c(0,0), limits = c(0,ymax)) +
    theme_bw() +
    theme(
      plot.title = element_text(hjust = 0.5),
      plot.subtitle = element_text(hjust = 0.5),
      panel.border = element_blank(),
      axis.ticks = element_line(colour = "black")
    ) +
    geom_text(fontface = "bold", data = de_tally, aes(x = position, y = ymax - 0.5, label = n, colour = class), size = 2.5 ) +
    scale_x_continuous(limits = xlim)
  if(!is.null(annotate_by)){
    plot <- plot + 
      ggrepel::geom_text_repel(
        fontface = "italic",
        data = filter(res, symbol %in% annotate_by), 
        aes(x = logFC, y = -log10(P.Value), label = symbol), 
        min.segment.length = unit(0, "lines"),
        size = 2.5) +
      geom_point(
        data = filter(res, symbol %in% annotate_by), size = 0.8, colour = "black"
      ) +
      geom_point(aes(colour = class ),
        data = filter(res, symbol %in% annotate_by), size = 0.6
      )
  }
  return(plot)
}
load("~/Documents/MiGASti/docs/2nd_pass/res_DEX_name.Rdata")
res_DEX <- res_DEX_name
res <- res_DEX_name[!duplicated(res_DEX_name$symbol), ]
rownames(res) <- res$symbol
EnhancedVolcano(res,
    lab = rownames(res),
    x = 'logFC',
    y = 'adj.P.Val')

volcano_plot(res_DEX, title = "DEG", 
               subtitle = "DEX vs unstimulated",
               annotate_by = c('FKBP5', 'ALOX15B', 'CD163', 'MRC1', 'TSC22D3', 'IL27RA', 'IL19', 'CXCL1', 'IL1B', 'CCL2', 'TLR2', 'TMEM119', 'MS4A4A', 'TMEM163', 'CD72'))
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 3 rows containing missing values (geom_text_repel).
## Warning: Removed 3 rows containing missing values (geom_point).

## Warning: Removed 3 rows containing missing values (geom_point).

EnhancedVolcano(res,
    lab = rownames(res),
    x = 'logFC',
    y = 'adj.P.Val',
    selectLab = c('FKBP5', 'ZBTB16', 'ALOX15B', 'PIK3IP1', 'CA12', 'TNFSF8'),
    xlab = bquote(~Log[2]~ 'fold change'),
    pCutoff = 0.05,
    FCcutoff = 1.0,
    pointSize = 2.0,
    labSize = 3.0,
    legendPosition = 'right',
    legendLabSize = 6,
    legendIconSize = 2.0)

sign <- subset(res, adj.P.Val < 0.05)
sign_LF <- subset(sign, logFC > 0)
length(sign_LF$symbol)
## [1] 861
sign_LF <- subset(sign, logFC < 0)
length(sign_LF$symbol)
## [1] 161
sign_LF <- subset(sign, logFC > 1)
length(sign_LF$symbol)
## [1] 500
sign_LF <- subset(sign, logFC < -1)
length(sign_LF$symbol)
## [1] 112

IL4

# Function Vulcano plot 
volcano_plot <- function(res, title = NULL, subtitle = NULL, annotate_by = NULL, type ='ALS'){
  res <- 
    mutate(res,
           sig = case_when(
      adj.P.Val >= 0.05 ~ "non_sig",
      adj.P.Val < 0.05 & abs(logFC) < 1 ~ "sig",
      adj.P.Val < 0.05 & abs(logFC) >= 1 ~ "sig - strong"
    )) %>%
    mutate(direction = ifelse(logFC > 0, "up", "down")) %>%
    mutate(logFC = case_when(
      logFC > 5 ~ Inf,
    logFC < -5 ~ -Inf,
    TRUE ~ logFC
    )) %>%
    mutate(class = paste(sig, direction))
  if( type == "ALS"){
    xpos <- 0.5
    ymax <- 30
    xlim <- c(-3,3)
  }else{
    xpos <- 0.025
    ymax <- 8.5
    xlim <- c(-0.042, 0.042)
  }
  de_tally <- group_by(res, sig, direction, class) %>% tally() %>%
    filter(sig != "non_sig") %>%
    mutate( position = ifelse(sig == "sig", xpos, 2) ) %>%
    mutate(position = ifelse( direction == "down", -1 * position, position)) %>%
    mutate(n = formatC(n, format="f", big.mark=",", digits=0))
  plot <- res %>%
    mutate( P.Value = ifelse( P.Value < 1e-90, Inf, P.Value)) %>% #threshold at 1e16
    ggplot(aes(x = logFC, y = -log10(P.Value))) + 
    #geom_point(aes(colour = class ), size = 0.5) +
    rasterise(geom_point(aes(colour = class ), size = 0.5), dpi = 300) +
    scale_colour_manual(values = c("non_sig up" = "gray", 
                                   "non_sig down" = "gray",
                                   "sig up" = "#EB7F56", 
                                   "sig - strong up" = "#B61927",
                                   "sig down" = "#4F8FC4",
                                   "sig - strong down" = "dodgerblue4"
                                   )) +
    theme_bw() +
    labs(y = expression(-log[10]~P~value), x = expression(log[2]~"(fold change)"), title = title, subtitle = subtitle) +
    guides(colour = FALSE) +
    scale_y_continuous(expand = c(0,0), limits = c(0,ymax)) +
    theme_bw() +
    theme(
      plot.title = element_text(hjust = 0.5),
      plot.subtitle = element_text(hjust = 0.5),
      panel.border = element_blank(),
      axis.ticks = element_line(colour = "black")
    ) +
    geom_text(fontface = "bold", data = de_tally, aes(x = position, y = ymax - 0.5, label = n, colour = class), size = 2.5 ) +
    scale_x_continuous(limits = xlim)
  if(!is.null(annotate_by)){
    plot <- plot + 
      ggrepel::geom_text_repel(
        fontface = "italic",
        data = filter(res, symbol %in% annotate_by), 
        aes(x = logFC, y = -log10(P.Value), label = symbol), 
        min.segment.length = unit(0, "lines"),
        size = 2.5) +
      geom_point(
        data = filter(res, symbol %in% annotate_by), size = 0.8, colour = "black"
      ) +
      geom_point(aes(colour = class ),
        data = filter(res, symbol %in% annotate_by), size = 0.6
      )
  }
  return(plot)
}
load("~/Documents/MiGASti/docs/2nd_pass/res_IL4_name.Rdata")
res <- res_IL4_name[!duplicated(res_IL4_name$symbol), ]
res_IL4 <- res_IL4_name 
rownames(res) <- res$symbol
EnhancedVolcano(res,
    lab = rownames(res),
    x = 'logFC',
    y = 'adj.P.Val')

volcano_plot(res_IL4, title = "DEG", 
               subtitle = "IL4 vs unstimulated",
               annotate_by = c('ARHGAP25', 'PPARG', 'MAOA', 'MS4A4A', 'SCIMP', 'FCER', 'IL12B', 'ZNF709', 'FCAMR', 'CTSC', 'CLEC4A', 'SPINT2', 'CISH', 'P2RY12'))
## Warning: Removed 3 rows containing missing values (geom_point).
## Warning: Removed 3 rows containing missing values (geom_text_repel).
## Warning: Removed 3 rows containing missing values (geom_point).

## Warning: Removed 3 rows containing missing values (geom_point).

EnhancedVolcano(res,
    lab = rownames(res),
    x = 'logFC',
    y = 'adj.P.Val',
    selectLab = c('SPINT2', 'CISH', 'CTSC', 'TGM2', 'MS4A4A', 'P2RY12', 'CLEC5A', 'ST3GAL1'),
    xlab = bquote(~Log[2]~ 'fold change'),
    pCutoff = 0.05,
    FCcutoff = 1.0,
    pointSize = 2.0,
    labSize = 3.0,
    legendPosition = 'right',
    legendLabSize = 6,
    legendIconSize = 2.0)

sign <- subset(res, adj.P.Val < 0.05)
sign_LF <- subset(sign, logFC > 0)
length(sign_LF$symbol)
## [1] 94
sign_LF <- subset(sign, logFC < 0)
length(sign_LF$symbol)
## [1] 3
sign_LF <- subset(sign, logFC > 1)
length(sign_LF$symbol)
## [1] 79
sign_LF <- subset(sign, logFC < -1)
length(sign_LF$symbol)
## [1] 3
overlap <- merge(sign_LF, Patir, by = "symbol")
list(overlap$symbol)
## [[1]]
## character(0)

ATP

# Function Vulcano plot 
volcano_plot <- function(res, title = NULL, subtitle = NULL, annotate_by = NULL, type ='ALS'){
  res <- 
    mutate(res,
           sig = case_when(
      adj.P.Val >= 0.05 ~ "non_sig",
      adj.P.Val < 0.05 & abs(logFC) < 1 ~ "sig",
      adj.P.Val < 0.05 & abs(logFC) >= 1 ~ "sig - strong"
    )) %>%
    mutate(direction = ifelse(logFC > 0, "up", "down")) %>%
    mutate(logFC = case_when(
      logFC > 5 ~ Inf,
    logFC < -5 ~ -Inf,
    TRUE ~ logFC
    )) %>%
    mutate(class = paste(sig, direction))
  if( type == "ALS"){
    xpos <- 0.5
    ymax <- 10
    xlim <- c(-3,3)
  }else{
    xpos <- 0.025
    ymax <- 8.5
    xlim <- c(-0.042, 0.042)
  }
  de_tally <- group_by(res, sig, direction, class) %>% tally() %>%
    filter(sig != "non_sig") %>%
    mutate( position = ifelse(sig == "sig", xpos, 2) ) %>%
    mutate(position = ifelse( direction == "down", -1 * position, position)) %>%
    mutate(n = formatC(n, format="f", big.mark=",", digits=0))
  plot <- res %>%
    mutate( P.Value = ifelse( P.Value < 1e-90, Inf, P.Value)) %>% #threshold at 1e16
    ggplot(aes(x = logFC, y = -log10(P.Value))) + 
    #geom_point(aes(colour = class ), size = 0.5) +
    rasterise(geom_point(aes(colour = class ), size = 0.5), dpi = 300) +
    scale_colour_manual(values = c("non_sig up" = "gray", 
                                   "non_sig down" = "gray",
                                   "sig up" = "#EB7F56", 
                                   "sig - strong up" = "#B61927",
                                   "sig down" = "#4F8FC4",
                                   "sig - strong down" = "dodgerblue4"
                                   )) +
    theme_bw() +
    labs(y = expression(-log[10]~P~value), x = expression(log[2]~"(fold change)"), title = title, subtitle = subtitle) +
    guides(colour = FALSE) +
    scale_y_continuous(expand = c(0,0), limits = c(0,ymax)) +
    theme_bw() +
    theme(
      plot.title = element_text(hjust = 0.5),
      plot.subtitle = element_text(hjust = 0.5),
      panel.border = element_blank(),
      axis.ticks = element_line(colour = "black")
    ) +
    geom_text(fontface = "bold", data = de_tally, aes(x = position, y = ymax - 0.5, label = n, colour = class), size = 2.5 ) +
    scale_x_continuous(limits = xlim)
  if(!is.null(annotate_by)){
    plot <- plot + 
      ggrepel::geom_text_repel(
        fontface = "italic",
        data = filter(res, symbol %in% annotate_by), 
        aes(x = logFC, y = -log10(P.Value), label = symbol), 
        min.segment.length = unit(0, "lines"),
        size = 2.5) +
      geom_point(
        data = filter(res, symbol %in% annotate_by), size = 0.8, colour = "black"
      ) +
      geom_point(aes(colour = class ),
        data = filter(res, symbol %in% annotate_by), size = 0.6
      )
  }
  return(plot)
}
load("~/Documents/MiGASti/docs/2nd_pass/res_ATP_name.Rdata")
res <- res_ATP_name[!duplicated(res_ATP_name$symbol), ]
res_ATP <- res_ATP_name 
rownames(res) <- res$symbol
EnhancedVolcano(res,
    lab = rownames(res),
    x = 'logFC',
    y = 'adj.P.Val')

volcano_plot(res_ATP, title = "DEG", 
               subtitle = "ATP vs unstimulated",
               annotate_by = c('LINC-PINT', 'NR4A2', 'ZNF26', 'OVOL1', 'EGR3', 'RN7SK', 'MAP1A', 'TMEM150B'))
## Warning: Removed 4 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text_repel).
## Warning: Removed 1 rows containing missing values (geom_point).

## Warning: Removed 1 rows containing missing values (geom_point).

EnhancedVolcano(res,
    lab = rownames(res),
    x = 'logFC',
    y = 'adj.P.Val',
    selectLab = c('NR4A3', 'OVOL1', 'PALM2', 'MICA'),
    xlab = bquote(~Log[2]~ 'fold change'),
    pCutoff = 0.05,
    FCcutoff = 1.0,
    pointSize = 2.0,
    labSize = 3.0,
    legendPosition = 'right',
    legendLabSize = 6,
    legendIconSize = 2.0)

sign <- subset(res, adj.P.Val < 0.05)
sign_LF <- subset(sign, logFC > 0)
length(sign_LF$symbol)
## [1] 65
sign_LF <- subset(sign, logFC < 0)
length(sign_LF$symbol)
## [1] 79
sign_LF <- subset(sign, logFC > 1)
length(sign_LF$symbol)
## [1] 58
sign_LF <- subset(sign, logFC < -1)
length(sign_LF$symbol)
## [1] 59